Glueクローラーのデータソースとして別AWSアカウントのS3バケットを指定したい
Glue クローラーのデータソースとして異なる AWS アカウントが所有する S3 バケットを指定する場合の、必要なアクセス許可について説明します。
2024.04.17
困っていた内容
Glue クローラーのデータソースとして、異なる AWS アカウントが所有する S3 バケットを指定したいのですが、どのようなアクセス許可が必要ですか。
どう対応すればいいの?
クローラーにアタッチされている IAM ロールからの s3:GetObject
、s3:ListBucket
許可を、S3 バケットのバケットポリシーにて設定する必要があります。
アカウント A: クローラーを作成する AWS アカウント
Glue クローラー作成画面では、クローラーにアタッチする IAM ロールを作成できますが、別アカウント所有の S3 バケットであるからと言って、このロールの内容を特別に変更する必要はありません。
なお、クローラーに必要な IAM ロールの権限については、以下ドキュメントで確認できます。
アカウント B: S3 バケットを所有する AWS アカウント
対象バケットで以下のようなバケットポリシーを設定します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "AWS": "<AWS アカウント A のクローラーにアタッチした IAM ロール ARN>" }, "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<S3バケット名>", "arn:aws:s3:::<S3バケット名>/*" ] } ] }